The development of search engines for searching large databases of data is important to many fields. Examples of such fields include semiconductor and integrated circuit chip design and networking applications such as Internet universal resource locator look-ups in high performance routers. Searching the large databases requires increased time and/or hardware requirements resulting in expensive systems in terms of increased search delays and larger memories.
New search engines require reference databases having known data values to verify proper operation. Generation of large reference databases is an area that has not seen significant attention. The large reference databases require large numbers of unique non-repeating data values so that every test search produces a unique output. Conventional database architectures also require that each unique data value have an associated key or prefix to aid in the search operations. To provide a realistic reference database, a random or pseudo-random relationship is required between the keys/prefixes and the data values.
A one-to-one functional relationship will exist between the keys/prefixes and data values when all of the data values all of the keys/prefixes are unique. The one-to-one function may be defined mathematically as a function f with a domain D and a range R where for every element y in the range R there is exactly one element x in the domain D such that f(x)=y and f−1(y)=x. Thus, a reference database searched by the new search engine may be judged against the results produced by the one-to-one function. If the new search engine is working, then the reference database search on any given key/prefix will produce the same data value as the one-to-one function produces for the given key/prefix.